{"version":3,"file":"static/chunks/pages/locations/[...slug]-6a48ca5709f4a6f0.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","webpack://_N_E/../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","webpack://_N_E/?c898","webpack://_N_E/./components/about-locations/about-locations-page.tsx","webpack://_N_E/../../libs/osc/breadcrumbs/src/lib/breadcrumbs.tsx","webpack://_N_E/../../libs/osc/breadcrumbs/src/index.ts","webpack://_N_E/./components/breadcrumbs/breadcrumbs.tsx","webpack://_N_E/./components/breadcrumbs/index.ts","webpack://_N_E/./components/interlinks/interlinks.tsx","webpack://_N_E/./components/interlinks/index.ts","webpack://_N_E/./hooks/use-get-dream-page-attributes.ts","webpack://_N_E/./hooks/use-hotel-sort.ts","webpack://_N_E/./components/locations-page/locations-page.tsx","webpack://_N_E/./components/locations-page/index.ts","webpack://_N_E/./pages/locations/[...slug]/index.tsx","webpack://_N_E/./utils/seo-schema-utils.ts","webpack://_N_E/./components/about-locations/about-locations-page.module.css"],"sourcesContent":["var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseTrim = require('./_baseTrim'),\n    isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","\n    (window.__NEXT_P = window.__NEXT_P || []).push([\n      \"/locations/[...slug]\",\n      function () {\n        return require(\"private-next-pages/locations/[...slug]/index.tsx\");\n      }\n    ]);\n    if(module.hot) {\n      module.hot.dispose(function () {\n        window.__NEXT_P.push([\"/locations/[...slug]\"])\n      });\n    }\n  ","import styles from './about-locations-page.module.css';\nimport type { LocationAbout } from '@dx-ui/queries-dx-shop-search-ui';\nimport cx from 'classnames';\n\ntype AboutLocationsPageProp = {\n  about?: LocationAbout | null;\n  aboutClassName?: string;\n  contentBlockClassName?: string;\n  descriptionClassName?: string;\n  titleClassName?: string;\n};\n\nexport const AboutLocationsPage = ({\n  about,\n  aboutClassName,\n  contentBlockClassName,\n  descriptionClassName,\n  titleClassName,\n}: AboutLocationsPageProp) => {\n  let descIndex = 0;\n  let orderedListIndex = 0;\n  let unOrderedListIndex = 0;\n  if (about && about?.contentBlocks?.length > 0) {\n    return (\n      <div className={cx(styles.container, aboutClassName)} data-testid=\"about-contentBlocks\">\n        {about?.contentBlocks?.map((contentBlock) => {\n          const title = contentBlock?.title ? `<h2>${contentBlock?.title}</h2>` : null;\n          return title ? (\n            <div key={`content-block-${contentBlock?.title}`} className={contentBlockClassName}>\n              <div\n                className={cx(\n                  {\n                    'text-primary text-base font-bold': !titleClassName,\n                  },\n                  titleClassName\n                )}\n                dangerouslySetInnerHTML={{ __html: title }}\n              />\n              {contentBlock.descriptions?.map((description) => {\n                return description ? (\n                  <div\n                    className={cx(\n                      {\n                        'p-2 text-xs': !descriptionClassName,\n                      },\n                      descriptionClassName\n                    )}\n                    dangerouslySetInnerHTML={{ __html: description }}\n                    key={`content-title-${descIndex++}`}\n                  />\n                ) : null;\n              })}\n              {contentBlock?.orderedList?.map((orderedList) => {\n                return orderedList ? (\n                  <div\n                    className=\"p-2 text-xs\"\n                    dangerouslySetInnerHTML={{ __html: orderedList }}\n                    key={`contentBlock-orderedList-${orderedListIndex++}`}\n                  />\n                ) : null;\n              })}\n              {contentBlock?.unorderedList?.map((unorderedList) => {\n                return unorderedList ? (\n                  <div\n                    className=\"p-2 text-xs\"\n                    dangerouslySetInnerHTML={{ __html: unorderedList }}\n                    key={`contentBlock-orderedList-${unOrderedListIndex++}`}\n                  />\n                ) : null;\n              })}\n            </div>\n          ) : null;\n        })}\n      </div>\n    );\n  }\n  return null;\n};\n","import { useTranslation } from 'next-i18next';\n\nexport type BreadcrumbsProps = {\n  /** A list of breadcrumbs to display */\n  breadcrumbs?: { name?: string | null; uri?: string | null }[];\n} & React.HTMLAttributes<HTMLDivElement>;\n\nexport const Breadcrumbs = ({ breadcrumbs, ...rest }: BreadcrumbsProps) => {\n  const { t } = useTranslation('osc-breadcrumbs');\n\n  if (!breadcrumbs?.length) return null;\n\n  return (\n    <nav aria-label={t('breadcrumb')} data-testid=\"osc-breadcrumbs\" {...rest}>\n      <ol className=\"text-text-alt flex flex-wrap text-xs md:text-sm\">\n        {breadcrumbs.map((breadcrumb, idx) => {\n          const isLastBreadcrumb = idx === breadcrumbs.length - 1;\n          return (\n            <li key={breadcrumb.uri}>\n              {isLastBreadcrumb ? (\n                <a aria-current=\"page\" href={breadcrumb.uri || ''}>\n                  {breadcrumb.name}\n                </a>\n              ) : (\n                <>\n                  <a className=\"underline\" href={breadcrumb.uri || ''}>\n                    {breadcrumb.name}\n                  </a>\n                  <span aria-hidden={true} className=\"mx-2\">\n                    /\n                  </span>\n                </>\n              )}\n            </li>\n          );\n        })}\n      </ol>\n    </nav>\n  );\n};\n\nexport default Breadcrumbs;\n","export * from './lib/breadcrumbs';\n","import { useWrappedRouter } from '../../hooks';\nimport { Breadcrumbs as OSCBreadCrumbs } from '@dx-ui/osc-breadcrumbs';\n\ntype BreadcrumbsProps = {\n  breadcrumbs: { name: string; uri: string }[];\n};\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n  const { router } = useWrappedRouter();\n\n  if (breadcrumbs.length === 0) return null;\n\n  const breadCrumbs = breadcrumbs?.map((bc) => ({\n    name: bc.name,\n    uri: `/${router.locale}${bc.uri}`,\n  }));\n  return <OSCBreadCrumbs breadcrumbs={breadCrumbs} />;\n};\n","export * from './breadcrumbs';\n","import { env } from '../../constants';\nimport { useMetrics, useWrappedRouter } from '../../hooks';\nimport { Accordion } from '@dx-ui/osc-accordion';\n\ntype Interlink = {\n  name: string;\n  uri: string;\n};\n\ntype InterlinksProps = {\n  interlinks?: Interlink[];\n  interlinkTitle?: string;\n  index?: string;\n};\n\nexport const Interlinks = ({ interlinks, interlinkTitle }: InterlinksProps) => {\n  const metrics = useMetrics();\n  const location_interlinks = interlinks || [];\n  const { router } = useWrappedRouter();\n\n  const handleInterlinkMetricsOnClick = (linkItemName?: string) => {\n    if (interlinkTitle) {\n      let data = '';\n      if (interlinkTitle.indexOf('by') > -1)\n        data = interlinkTitle.substring(interlinkTitle.indexOf('by') + 3);\n      if (interlinkTitle.indexOf('near') > -1)\n        data = interlinkTitle.substring(interlinkTitle.indexOf('near') + 5);\n      const formattedLinkItemName = data.split(' ')[0];\n      metrics.trackInterlinksTitleClick(\n        linkItemName && formattedLinkItemName\n          ? `${formattedLinkItemName}:${linkItemName}`\n          : formattedLinkItemName ?? ''\n      );\n    }\n  };\n\n  const interLinkTitle = () => (\n    <h3 className=\"text-primary font-sans text-base font-bold\">\n      <span dangerouslySetInnerHTML={{ __html: interlinkTitle || '' }} />\n    </h3>\n  );\n  return (\n    <div className=\"border-border border-b py-4\" data-testid=\"location-interlinks\">\n      <Accordion\n        className=\"accordion-stacked bg-transparent p-0 text-left font-sans font-bold\"\n        items={[\n          {\n            key: 'location-interlinks',\n            content: (\n              <section>\n                <ol\n                  className=\"grid list-none grid-cols-2 gap-2 pt-4 md:grid-cols-3\"\n                  data-testid=\"interLinkList\"\n                >\n                  {location_interlinks.map((linkItem) => (\n                    <li className=\"inline-block pb-4\" key={linkItem.name}>\n                      <a\n                        className=\"text-primary inline-block font-normal no-underline \"\n                        data-testid={`interLink ${linkItem.name}`}\n                        href={`${env.OHW_BASE_URL}${router.locale}/${linkItem.uri}`}\n                        onClick={() => handleInterlinkMetricsOnClick(linkItem.name)}\n                      >\n                        {linkItem.name}\n                      </a>\n                    </li>\n                  ))}\n                </ol>\n              </section>\n            ),\n            collapsedButtonLabel: interLinkTitle(),\n            expandedButtonLabel: interLinkTitle(),\n          },\n        ]}\n        type=\"multiple\"\n        variant=\"stacked\"\n      />\n    </div>\n  );\n};\n","export * from './interlinks';\n","import { useMemo, useEffect } from 'react';\nimport type {\n  HotelSummaryOptions_GeocodePageQuery,\n  LocationCategory,\n  Maybe,\n} from '@dx-ui/queries-dx-shop-search-ui';\nimport { useFeatureToggleConfig } from './use-feature-toggle';\nimport type { PageType } from '../utils';\nimport { getPageType } from '../utils';\nimport { useWrappedRouter } from './use-wrapped-router';\nimport { useAppDispatch } from '../providers/app-provider';\n\ntype PageAttributes = {\n  categoryId?: Maybe<LocationCategory | 'resort'>;\n  categoryName?: string;\n  isCategoryAmenity?: boolean;\n  isGlobalPage?: boolean;\n  isResortPage?: boolean;\n};\nconst defaultDreamPageAttibutes: PageAttributes = {\n  categoryId: undefined,\n  categoryName: '',\n  isCategoryAmenity: false,\n  isGlobalPage: false,\n  isResortPage: false,\n};\ntype DreamAttributesConfig = {\n  id?: Maybe<LocationCategory | 'resort'>;\n  slug?: string;\n  singularDisplay?: string;\n  pluralDisplay?: string;\n  breadcrumbDisplay?: string;\n  amenityIds?: string[];\n  categoryIds?: string[];\n};\n\nexport const useGetDreamPageAttributes = (\n  data: NonNullable<HotelSummaryOptions_GeocodePageQuery['geocodePage']>['location'] | undefined\n) => {\n  const dreamPageAttributesConfig = useFeatureToggleConfig('config-dream-attributes');\n  const { safeQueryParams: queryParameters, router } = useWrappedRouter();\n  const dispatch = useAppDispatch();\n\n  const dreamPageAttributes = useMemo(() => {\n    const pageAttributes: PageAttributes = {\n      ...defaultDreamPageAttibutes,\n      isGlobalPage: !!data?.globalBounds,\n    };\n\n    if (dreamPageAttributesConfig?.enabled) {\n      const category = data?.category;\n      if (category || queryParameters?.activeFiltersState?.amenityFilters?.length) {\n        const dreamAttributes: DreamAttributesConfig[] = Object.values(\n          dreamPageAttributesConfig?.config ?? {}\n        );\n        const categoryOrAmenity = dreamAttributes?.find(\n          (config) =>\n            config?.id === category ||\n            queryParameters?.activeFiltersState?.amenityFilters.includes(config.id ?? '')\n        );\n        pageAttributes.isCategoryAmenity = !!categoryOrAmenity;\n        pageAttributes.isResortPage = category === 'resort';\n        pageAttributes.categoryId = categoryOrAmenity?.id;\n        pageAttributes.categoryName = pageAttributes.isResortPage\n          ? categoryOrAmenity?.pluralDisplay\n          : categoryOrAmenity?.singularDisplay;\n      }\n    }\n    return pageAttributes;\n  }, [\n    data?.category,\n    data?.globalBounds,\n    dreamPageAttributesConfig?.config,\n    dreamPageAttributesConfig?.enabled,\n    queryParameters?.activeFiltersState?.amenityFilters,\n  ]);\n\n  useEffect(() => {\n    //set pageType\n    const pageType: PageType = getPageType(router.asPath, queryParameters);\n    pageType.isGlobal = !!dreamPageAttributes.isGlobalPage;\n    pageType.isResorts = !!dreamPageAttributes.isResortPage;\n    pageType.isCategoryAmenity = !!dreamPageAttributes.isCategoryAmenity;\n    pageType.isBrand = !!data?.brandCode;\n    dispatch({ type: 'SET_PAGE_TYPES', payload: pageType });\n  }, [data, dispatch, dreamPageAttributes, queryParameters, router.asPath]);\n\n  return { pageAttributes: dreamPageAttributes };\n};\n","import type { HotelType } from '../providers/app-provider/app-provider.types';\nimport type { GoogleCoordinate } from '../utils';\nimport { sortHotels } from '../utils';\nimport { useState, useEffect } from 'react';\n\nlet worker: Worker;\n\nif (typeof window !== 'undefined' && typeof Worker !== 'undefined' && import.meta.url) {\n  worker = new Worker(new URL('../utils/hotel-sort-worker.ts', import.meta.url));\n}\nexport const useSortHotels = (\n  sortType: string | null,\n  brandCode: string | undefined,\n  hotels: HotelType[],\n  centerCoordinate: GoogleCoordinate | null\n) => {\n  const [sortedHotels, setSortedHotels] = useState<HotelType[]>([]);\n\n  useEffect(() => {\n    const fetchData = () => {\n      try {\n        if (worker) {\n          worker.postMessage({\n            sortType,\n            brandCode,\n            hotels,\n            centerCoordinate,\n          });\n\n          const handleMessage = (event: { data: HotelType[] }) => {\n            setSortedHotels(event.data);\n          };\n\n          worker.addEventListener('message', handleMessage);\n\n          return () => {\n            worker.removeEventListener('message', handleMessage);\n          };\n        } else {\n          // If Web Worker is not available, call the function directly\n          setSortedHotels(sortHotels(sortType, brandCode, hotels, centerCoordinate));\n        }\n      } catch (e) {\n        // eslint-disable-next-line no-console\n        console.error('Error in useSortHotels (Web Worker):', e);\n        // On Error, call the function directly\n        setSortedHotels(sortHotels(sortType, brandCode, hotels, centerCoordinate));\n      }\n    };\n    void fetchData();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [sortType, brandCode, hotels.length, centerCoordinate]);\n  return sortedHotels.length\n    ? sortedHotels\n    : sortHotels(sortType, brandCode, hotels, centerCoordinate);\n};\n","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/no-unstable-nested-components */\nimport * as React from 'react';\nimport { MetaData } from '../meta-data';\nimport Footer from '../../components/footer';\nimport {\n  env,\n  GOALS,\n  MAX_PROPERTIES_PER_LIST_VIEW_PAGE,\n  CHANGE_DEFAULT_SORT_WHEN_USING_POINTS,\n  VARIANTS,\n} from '../../constants';\nimport cx from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport debounce from 'lodash/debounce';\nimport { Filters, HotelDetails } from '../dynamic-components';\nimport { getSeoSchema } from '../../utils/seo-schema-utils';\nimport { PlacesSearch } from '../places-search';\nimport {\n  useMetrics,\n  useWrappedRouter,\n  useGetDreamPageData,\n  useGetFilteredHotels,\n  useFeatureToggleConfig,\n  useGetMVTSelections,\n  useMapListToggle,\n} from '../../hooks';\nimport { CurrencyConverter } from '../currency-converter/currency-converter';\nimport { useAuth } from '@dx-ui/framework-auth-provider';\nimport { useInitializeConductrics } from '../../hooks/use-initialize-conductrics';\nimport { SortByDropDown } from '../sort-by-drop-down';\nimport { SearchHeader } from '../search-header';\nimport { useLocation } from '@dx-ui/framework-location-provider';\nimport useHotelSummaryOptions from '../../hooks/use-hotel-summary-options/use-hotel-summary-options';\nimport { hashHotelSummaryOptionsData } from '../../hooks/use-hotel-summary-options/utils/get-hashed-hotel-summary-options-data-from-cache';\nimport { useAppDispatch, useAppState } from '../../providers/app-provider';\nimport type { ActiveFiltersState } from '../filters/filter.constants';\nimport { initializeActiveFiltersState } from '../filters/filter-utils';\nimport {\n  getSortType,\n  getSessionState,\n  SORTBY_DROP_DOWN,\n  type SortByDropDownValues,\n} from '../../utils';\nimport { AboutLocationsPage } from '../about-locations/about-locations-page';\nimport { UsePoints } from '../use-points/use-points';\nimport { Interlinks } from '../interlinks';\nimport type { LocationPageInterlink } from '@dx-ui/queries-dx-shop-search-ui';\nimport { sendReward, useConductricsSelection } from '@dx-ui/framework-conductrics';\nimport { ListView } from '../list-view/list-view';\nimport isEqual from 'lodash/isEqual';\nimport { Breadcrumbs } from '../breadcrumbs';\nimport { useGetDreamPageAttributes } from '../../hooks/use-get-dream-page-attributes';\nimport { useSortHotels } from '../../hooks/use-hotel-sort';\nimport { applyFiltersToHotel } from '../../providers/app-provider/app-provider.utils';\nimport { useCoordsFromParams } from '../../hooks/use-coords-from-params';\nimport { useIsClient } from 'usehooks-ts';\nimport { useRef } from 'react';\nimport { CompareHotelsToggle } from '../compare-hotels/compare-toggle';\nimport { CompareBar } from '../compare-hotels/compare-bar';\nimport { useFilterState } from '../../providers/filter-provider';\nimport { HotelSearchResultSummaryPanel } from '../hotel-search-result-summary/hotel-search-result-summary';\nimport { Accordion } from '@dx-ui/osc-accordion';\nimport { useVerticalSpaceMVT } from '../../hooks/use-vertical-space-MVT';\nimport { TaxonomyList } from '@dx-ui/osc-taxonomy-list';\nimport { SuggestedFilterButtons } from '../filters/suggested-filters';\nimport { MapBlock } from '../map/map-block';\nimport { updateMapBounds } from '../map/map.utils';\n\ntype LocationsPageProps = {\n  initialBounds: google.maps.LatLngBoundsLiteral;\n  path: string;\n};\n\nexport const LocationsPage = ({ initialBounds: initBounds, path }: LocationsPageProps) => {\n  const { selectedCtyhocn, selectedCurrency, isListVisible, sortType, shouldUsePoints, pageType } =\n    useAppState();\n  const activeFiltersState = useFilterState();\n  const isClient = useIsClient();\n\n  const dispatch = useAppDispatch();\n\n  const { safeQueryParams: queryParameters, router } = useWrappedRouter();\n  const { shouldUseParamCoords } = useCoordsFromParams();\n\n  const [locationQueryPath, setLocationQueryPath] = React.useState(path);\n  const { t } = useTranslation([\n    'hotel-card',\n    'locations-page',\n    'sort-by-drop-down',\n    'footer',\n    'hotel-counter-text',\n  ]);\n  const metrics = useMetrics();\n  const { guestInfo, isLoading: isAuthLoading, isAuthenticated } = useAuth();\n\n  const {\n    data,\n    locationPath,\n    bounds: initialBounds,\n    isLoading: isLocationPageHSOLoading,\n    initHotelCount,\n    locationMatchName,\n    regionMatchName,\n  } = useGetDreamPageData();\n\n  const { enabled: blobPocToggleEnabled } = useFeatureToggleConfig('NHCSEARCH-4655-blob-poc');\n\n  const { pageAttributes } = useGetDreamPageAttributes(data?.location);\n\n  const { categoryId, categoryName, isGlobalPage, isCategoryAmenity } = pageAttributes;\n  const brandName =\n    data?.hotelSummaryOptions?.brands?.find((brand) => brand.code === data?.location?.brandCode)\n      ?.name || '';\n  const brandCode = data?.location?.brandCode || '';\n  const totalSize = data?.hotelSummaryOptions?._hotels?.totalSize || 0;\n  const initialHashedHotelData = hashHotelSummaryOptionsData(data, {});\n  const [mapBounds, setMapBounds] = React.useState<google.maps.LatLngBoundsLiteral>(initBounds);\n  const [mapCenter, setMapCenter] = React.useState<google.maps.LatLngLiteral | undefined>();\n\n  const isInitialRender = React.useRef(true);\n  const allQuadNodesLoaded = React.useRef(true);\n  const boundsChangeCount = React.useRef(0);\n  const hotelCounterRef = useRef<HTMLDivElement>(null);\n\n  const isCountryOrState = ['country', 'state', 'region'].includes(data?.match?.type || '');\n  const { hashedHotelSummaryOptionsHotelData, isFetching: isHotelSummaryOptionsLoading } =\n    useHotelSummaryOptions({\n      initialHashedHotelSummaryOptionsData: initialHashedHotelData,\n      bounds: mapBounds,\n      brandCode: pageType.isPageBrandFilterEnabled ? brandCode : undefined,\n      language: 'en',\n      address: boundsChangeCount.current < 2 && isCountryOrState ? data?.match?.address : undefined,\n      type: data?.match?.type,\n      isInitialRender,\n      matchName: regionMatchName,\n      blobEnabled: blobPocToggleEnabled,\n      hotelSummaryExtractUrl: data?.location?.hotelSummaryExtractUrl || '',\n    });\n\n  const { coordinate } = useLocation();\n\n  //NHCSEARCH-5020 Change Default Sort When Using Points\n  const { isMVTVariant, isLoaded: isPointSortMVTLoaded } = useGetMVTSelections({\n    agentId: CHANGE_DEFAULT_SORT_WHEN_USING_POINTS?.agentId,\n    isProvisional: shouldUsePoints || queryParameters?.redeemPts,\n  });\n  const isPointsSortMVT = isPointSortMVTLoaded && isMVTVariant?.[VARIANTS.VariantB];\n  const initWithPointsSort = isPointsSortMVT && queryParameters?.redeemPts;\n\n  const sessionState = getSessionState(isClient);\n\n  React.useEffect(() => {\n    if (router.isReady && queryParameters && allQuadNodesLoaded.current) {\n      const locationCategory = isCategoryAmenity ? categoryId : undefined;\n      const newActiveFilterState = initializeActiveFiltersState({\n        category: locationCategory,\n        queryParameters,\n        brandCode,\n        sessionFiltersState: sessionState?.activeFilterState,\n      });\n      newActiveFilterState.showAvailableHotels = false;\n\n      dispatch({\n        type: 'INITIALIZE_APP',\n        payload: {\n          boundingBox: initialBounds || initBounds,\n          initialHashedHotelSummaryOptionsData: initialHashedHotelData,\n          usePoints:\n            sessionState.shouldUsePoints !== undefined\n              ? sessionState.shouldUsePoints\n              : !!queryParameters?.redeemPts,\n          hasConnectingRooms: !!queryParameters?.adjoiningRoomStay,\n          sortType: initWithPointsSort\n            ? SORTBY_DROP_DOWN.POINTS_ASCENDING\n            : getSortType(queryParameters?.sortBy, sessionState?.sortType as SortByDropDownValues),\n          selectedCurrency: sessionState.selectedCurrency\n            ? sessionState.selectedCurrency\n            : queryParameters?.displayCurrency || '',\n          activeFiltersState: newActiveFilterState,\n          brandCode,\n        },\n      });\n      boundsChangeCount.current = 0;\n      sendReward(GOALS.LocationsPageLoad);\n    }\n  }, [router.isReady, allQuadNodesLoaded.current, isCategoryAmenity]);\n\n  // conductrics init\n  useInitializeConductrics({ authLoading: isAuthLoading, guestInfo, isAuthenticated });\n\n  const { isLoaded: isConductricsLoaded } = useConductricsSelection('');\n\n  React.useEffect(() => {\n    if (!isAuthLoading) {\n      metrics.setDreamPageData({\n        pageTitle: data?.location?.meta?.pageTitle || document.title,\n        brandName: brandName || '',\n        brandCode: brandCode || '',\n        categoryName: categoryName || '',\n        location: {\n          type: data?.match?.type,\n          typeName: locationMatchName,\n        },\n        city: data?.match?.address?.city || '',\n        country: data?.match?.address?.country || '',\n        state: data?.match?.address?.state || '',\n        honorsNumber: guestInfo?.hhonors?.hhonorsNumber || '',\n        tier: guestInfo?.hhonors?.summary?.tierName || '',\n        points: guestInfo?.hhonors?.summary?.totalPoints || 0,\n        packages: (guestInfo?.hhonors?.packages as unknown as { packageName: string }[]) || [],\n        currencyCode: selectedCurrency || '',\n        shouldUsePoints,\n        sortBy: sortType || SORTBY_DROP_DOWN.DISTANCE,\n        totalSize,\n      });\n      metrics.setPageData({ page: 'categoryPageView' });\n    }\n  }, [isAuthLoading, categoryName, brandName]);\n\n  React.useEffect(() => {\n    router.events.on('routeChangeStart', () => {\n      allQuadNodesLoaded.current = true;\n      boundsChangeCount.current = 0;\n      hasUserZoomed.current = false;\n    });\n  }, [router.events]);\n\n  React.useEffect(() => {\n    if (locationPath !== locationQueryPath) {\n      setLocationQueryPath(locationPath);\n    }\n    // update with new bounds for shallow routing\n    updateMapBounds({ mapBounds, newBounds: initialBounds, setMapBounds, setMapCenter });\n  }, [locationPath, initialBounds]);\n\n  // For country/state pages, results should be filtered to only that country/state\n  // until the user interacts with the map via pan/zoom (note: resizing the window triggers zoom events)\n  const hasUserZoomed = React.useRef(false);\n  const hasUserPanned = React.useRef(false);\n  const { visibleHotels: preFilteredHotels } = useGetFilteredHotels({\n    address: data?.match?.address,\n    hasUserPanned: hasUserPanned.current,\n    hasUserZoomed: hasUserZoomed.current,\n    isLoading: isHotelSummaryOptionsLoading,\n    matchName: regionMatchName,\n    type: data?.match?.type,\n  });\n\n  const visibleHotels = preFilteredHotels.filter((hotel) => {\n    const currentHotel = hashedHotelSummaryOptionsHotelData?.[hotel];\n    if (currentHotel)\n      return applyFiltersToHotel({\n        amenities: activeFiltersState.amenityFilters,\n        attributes: activeFiltersState.attributeFilters,\n        brandCodes: activeFiltersState.brandFilters,\n        rating: activeFiltersState.ratingsFilter,\n        hotel: currentHotel,\n        showAvailableHotelsOnly: activeFiltersState.showAvailableHotels,\n        hasMPACallResolved: true,\n        useLeadPrice: true,\n        priceRange: activeFiltersState.priceFilter,\n        maxPoints: queryParameters?.maxPoints,\n        shouldUsePoints,\n      });\n    return null;\n  });\n\n  const handleBoundsChange = React.useCallback(\n    debounce((newBounds: google.maps.LatLngBoundsLiteral) => {\n      updateMapBounds({\n        mapBounds,\n        newBounds,\n        setMapBounds,\n        setMapCenter,\n        onBoundsChange: () => {\n          boundsChangeCount.current++;\n        },\n      });\n    }, 300),\n    [mapBounds, setMapBounds]\n  );\n\n  React.useEffect(() => {\n    if (!isHotelSummaryOptionsLoading) {\n      allQuadNodesLoaded.current = true;\n      dispatch({\n        type: 'UPDATE_HOTELS_IN_BOUNDS',\n        payload: {\n          boundingBox: mapBounds,\n          hashedHotelSummaryOptionsHotelData,\n          hasUserZoomed: hasUserZoomed.current,\n        },\n      });\n    }\n  }, [\n    mapBounds,\n    isHotelSummaryOptionsLoading,\n    Object.keys(hashedHotelSummaryOptionsHotelData).length,\n  ]);\n\n  const [srCounter, setSrCounter] = React.useState(1); // set when we want SR to repeat text\n\n  const [hotelCountMessage, setHotelCountMessage] = React.useState(() =>\n    totalSize > MAX_PROPERTIES_PER_LIST_VIEW_PAGE && isListVisible\n      ? t('hotel-counter-text:hotelShowingWithPages', {\n          count: totalSize,\n          pageStart: 1,\n          pageEnd: 20,\n        })\n      : t('hotel-counter-text:hotelShowingWithCount', { count: totalSize })\n  );\n\n  const [srHotelCountMessage, setSrHotelCountMessage] = React.useState(() =>\n    visibleHotels.length\n      ? t('hotel-counter-text:hotelShowingWithCount', { count: totalSize })\n      : t('locations-page:notFoundMessage')\n  );\n\n  const centerCoordinate = React.useMemo(() => {\n    if (data?.location?.globalBounds) {\n      if (mapCenter?.lat !== undefined && mapCenter?.lng !== undefined && !hasUserZoomed.current) {\n        return mapCenter;\n      } else if (coordinate?.latitude !== undefined && coordinate?.longitude !== undefined) {\n        return { lat: coordinate.latitude, lng: coordinate.longitude };\n      }\n    } else if (shouldUseParamCoords) {\n      return {\n        lat: queryParameters?.coords?.latitude || 0,\n        lng: queryParameters?.coords?.longitude || 0,\n      };\n    }\n    return {\n      lat: data?.match?.geometry?.location.latitude || 0,\n      lng: data?.match?.geometry?.location.longitude || 0,\n    };\n  }, [\n    data?.location?.globalBounds,\n    coordinate?.latitude,\n    coordinate?.longitude,\n    data?.match?.geometry?.location.latitude,\n    data?.match?.geometry?.location.longitude,\n    shouldUseParamCoords,\n    mapCenter?.lat,\n    mapCenter?.lng,\n  ]);\n\n  const allHotelsSorted = useSortHotels(\n    sortType,\n    brandCode || '',\n    Object.values(hashedHotelSummaryOptionsHotelData),\n    centerCoordinate\n  );\n\n  const visibleHotelsSet = new Set(visibleHotels);\n  const visibleSortedHotels = allHotelsSorted.filter((hotel) =>\n    visibleHotelsSet.has(hotel.ctyhocn)\n  );\n  const onPageChanged = React.useCallback(\n    (pageIndex: number, pageSize: number) => {\n      const count = !isInitialRender.current ? visibleHotels.length : totalSize;\n      const pageStart = pageIndex * pageSize + 1;\n      const pageEnd = Math.min(count, pageIndex * pageSize + pageSize);\n\n      const message =\n        count > pageSize && isListVisible\n          ? t('hotel-counter-text:hotelShowingWithPages', {\n              count,\n              pageStart,\n              pageEnd,\n            })\n          : t('hotel-counter-text:hotelShowingWithCount', { count });\n      const srMessage = count === 0 ? t('locations-page:notFoundMessage') : message;\n      setHotelCountMessage(message);\n      setSrHotelCountMessage(srMessage);\n    },\n    [isGlobalPage, sortType, isInitialRender.current, totalSize, visibleHotels]\n  );\n\n  React.useEffect(() => {\n    let interval: ReturnType<typeof setInterval>;\n    if (isHotelSummaryOptionsLoading) {\n      interval = setInterval(() => setSrCounter(srCounter + 1), 3000);\n    } else {\n      setSrCounter(0);\n    }\n    return () => clearInterval(interval);\n  }, [isHotelSummaryOptionsLoading, srCounter]);\n\n  // Metadata information\n  const seoSchema = getSeoSchema({\n    breadcrumbs: data?.location?.breadcrumbs,\n    baseUrl: env.OHW_BASE_URL,\n    language: router.locale as string,\n    hotels: visibleSortedHotels,\n    amenities: data?.hotelSummaryOptions?.amenities,\n  });\n\n  const handleFilterChange = React.useCallback(\n    (newActiveFiltersState: Partial<ActiveFiltersState>) => {\n      //if this is a category page re-run location page query using base path w/out category param\n      if (\n        !isInitialRender.current &&\n        data?.location?.category &&\n        !isEqual(newActiveFiltersState, activeFiltersState)\n      ) {\n        //THIS IS A HACK FOR 3398 UNTIL WE IMPLEMENT BRAND TICKET FIX. If basepath is locations do not update the locationQueryPath as this nulls out the entire return of query.\n        if (data?.location.paths?.base !== 'locations/') {\n          setLocationQueryPath(data?.location.paths?.base || '');\n        }\n      }\n\n      dispatch({\n        type: 'APPLY_FILTERS_TO_HOTELS_IN_BOUNDS',\n        payload: {\n          activeFiltersState: newActiveFiltersState,\n          useLeadPrice: true,\n          brandCode,\n        },\n      });\n    },\n    [activeFiltersState, brandCode, data?.location?.category, data?.location.paths?.base, dispatch]\n  );\n\n  const handleFilterReset = () => {\n    //if this is a category page re-run location page query using base path w/out category param\n    if (!isInitialRender.current && data?.location?.category) {\n      //HACK: THIS IS A HACK FOR 3398 UNTIL WE IMPLEMENT BRAND TICKET FIX. If basepath is locations do not update the locationQueryPath as this nulls out the entire return of query.\n      if (data?.location.paths?.base !== 'locations/') {\n        setLocationQueryPath(data?.location.paths?.base || '');\n      }\n    }\n  };\n  const pageInterlinks = data?.location.pageInterlinks;\n\n  const { isDesktopListVisible, isDesktopMapView } = useMapListToggle();\n\n  /* NHCSEARCH-5451 Vertical Space MVT */\n  const {\n    isCurrencyAndSortInAllFiltersModal,\n    isFilterAndSortInAccordion,\n    isSuggestedFiltersInHorizontalScroll,\n    filterAndSortLabel,\n    isVerticalSpaceVar8,\n  } = useVerticalSpaceMVT();\n  const sortAndFiltersContent = (\n    <div\n      className={cx('flex items-center', {\n        'flex-wrap': !isSuggestedFiltersInHorizontalScroll,\n        ' max-md:px-4 md:-mx-3 ': isVerticalSpaceVar8,\n        ' 2xl:px-1': isSuggestedFiltersInHorizontalScroll,\n      })}\n    >\n      {isCurrencyAndSortInAllFiltersModal ? null : (\n        <div\n          className={cx('flex items-end lg:items-center', {\n            'flex-wrap': !isSuggestedFiltersInHorizontalScroll,\n          })}\n        >\n          <SortByDropDown />\n          <CurrencyConverter />\n        </div>\n      )}\n      <UsePoints />\n      <CompareHotelsToggle />\n      <Filters\n        amenities={data?.hotelSummaryOptions?.amenities}\n        amenityCategories={data?.hotelSummaryOptions?.amenityCategories}\n        brands={data?.hotelSummaryOptions?.brands}\n        filteredHotelCount={visibleHotels.length}\n        onFilterChange={handleFilterChange}\n        onResetFilters={() => handleFilterReset()}\n        showSaleFilter={false}\n      />\n      {isSuggestedFiltersInHorizontalScroll ? (\n        <div className=\"border-border ml-1 border-l-2 pl-1\">\n          <SuggestedFilterButtons\n            amenities={data?.hotelSummaryOptions?.amenities}\n            isConductricsLoaded={isConductricsLoaded}\n            isFindingHotels={isHotelSummaryOptionsLoading || isLocationPageHSOLoading}\n            onFilterCriteriaChange={(activeFiltersState: ActiveFiltersState) => {\n              handleFilterChange(activeFiltersState);\n            }}\n            visibleHotels={visibleHotels}\n            matchId={data?.match?.id}\n          />\n        </div>\n      ) : null}\n    </div>\n  );\n  const sortAndFilters = isSuggestedFiltersInHorizontalScroll ? (\n    <TaxonomyList\n      labelledBy={filterAndSortLabel}\n      name={filterAndSortLabel}\n      containerClassname=\"overflow-hidden -my-2\"\n    >\n      {sortAndFiltersContent}\n    </TaxonomyList>\n  ) : (\n    sortAndFiltersContent\n  );\n\n  return (\n    <>\n      <MetaData\n        brandCode={brandCode || 'WW'}\n        description={data?.location?.meta?.description || ''}\n        pageTitle={data?.location?.meta?.pageTitle || ''}\n        path={router.asPath.replace(/^\\/[a-z]{2}\\//i, '/').replace(/\\/$/, '')}\n        seoSchema={seoSchema}\n        isGlobalBounds={!!data?.location?.globalBounds}\n        locationPageMatchType={data?.match?.type}\n      />\n      <SearchHeader brandCode={brandCode} brandName={brandName} isFluid />\n      <main role=\"main\">\n        <div className={cx('container-fluid mb-4', {})}>\n          <div className=\"flex flex-col\">\n            <div className=\"mt-4 flex flex-col\">\n              <div className=\"mt-2 flex-initial md:mt-0\">\n                <Breadcrumbs breadcrumbs={data?.location?.breadcrumbs || []} />\n              </div>\n            </div>\n\n            <div className=\"border-border-alt my-2 mt-4 border-t py-2 md:mb-0\">\n              <PlacesSearch\n                brandCode={brandCode || ''}\n                ctaText={t('locations-page:update')}\n                hasShallowRoutingEnabled={true}\n                matchId={data?.match?.id}\n              />\n            </div>\n          </div>\n          <div className=\"border-hilton-alt mb-4 border-b-4 pb-4\">\n            {/* NHCSEARCH-5451 Vertical Space MVT */}\n            {isFilterAndSortInAccordion ? (\n              <Accordion\n                className=\"accordion-single hover:text-primary-alt\"\n                items={[\n                  {\n                    collapsedButtonLabel: filterAndSortLabel,\n                    expandedButtonLabel: filterAndSortLabel,\n                    expandedClassName: 'mb-3 lg:mb-4',\n                    key: filterAndSortLabel,\n                    content: sortAndFilters,\n                  },\n                ]}\n                type=\"single\"\n              />\n            ) : (\n              sortAndFilters\n            )}\n          </div>\n          <div\n            className={cx('relative grid grid-cols-1', {\n              'md:grid-cols-[max-content_1fr] md:gap-4': isDesktopListVisible,\n              'w-full': isDesktopMapView,\n            })}\n          >\n            <div\n              style={{ minHeight: '100vh' }}\n              className={cx({\n                'z-1 bg-bg relative h-auto max-md:w-full md:static md:max-w-[440px] lg:w-[694px] lg:max-w-[694px] xl:w-[888px] xl:max-w-[888px]':\n                  isListVisible,\n                'max-sm:z-0 hidden': !isListVisible,\n              })}\n            >\n              <HotelSearchResultSummaryPanel\n                amenities={data?.hotelSummaryOptions?.amenities}\n                customCounterMessage={hotelCountMessage}\n                customCounterSRMessage={srHotelCountMessage}\n                hotelCount={visibleSortedHotels.length}\n                isFindingHotels={isHotelSummaryOptionsLoading || isLocationPageHSOLoading}\n                isConductricsLoaded={isConductricsLoaded}\n                matchId={data?.match?.id}\n                onFilterChange={(activeFiltersState: ActiveFiltersState) =>\n                  handleFilterChange(activeFiltersState)\n                }\n                pageHeading1Title={data?.location?.title}\n                visibleHotels={visibleHotels}\n                showingHotelDivRef={hotelCounterRef}\n              />\n\n              <div className=\"md:sticky md:top-0\">\n                <ListView\n                  brandCode={brandCode || ''}\n                  brandName={brandName}\n                  centerCoordinate={centerCoordinate}\n                  isConductricsLoaded={true}\n                  onPageChanged={onPageChanged}\n                  sortedHotels={visibleSortedHotels}\n                  isHSODataLoading={isHotelSummaryOptionsLoading || isLocationPageHSOLoading}\n                  initHotelCount={initHotelCount ?? 0}\n                />\n                <AboutLocationsPage\n                  about={data?.location?.about}\n                  aboutClassName=\"px-0 py-3\"\n                  contentBlockClassName=\"py-1\"\n                  descriptionClassName=\"px-0 pb-1 text-xs\"\n                />\n                {pageInterlinks &&\n                  pageInterlinks?.length > 0 &&\n                  pageInterlinks?.map(\n                    (linkItem: LocationPageInterlink, index: React.Key | null | undefined) => (\n                      <Interlinks\n                        index={`${index}`}\n                        interlinkTitle={linkItem?.title || ''}\n                        interlinks={linkItem?.links}\n                        key={linkItem?.title || `title-${linkItem.links[0]?.name ?? index}`}\n                      />\n                    )\n                  )}\n                <div>\n                  <p className=\"p-8 text-xs\" data-testid=\"rateLegalDisclosure\">\n                    {shouldUsePoints\n                      ? t('locations-page:pointsLegalDisclaimer')\n                      : t('locations-page:legalDisclaimer')}\n                  </p>\n                </div>\n              </div>\n            </div>\n\n            <MapBlock\n              showSpinner={isHotelSummaryOptionsLoading}\n              visibleFilteredInBoundHotels={visibleHotels}\n              handleBoundsChange={handleBoundsChange}\n              hasUserPanned={hasUserPanned}\n              hasUserZoomed={hasUserZoomed}\n              initialBounds={initialBounds || initBounds}\n              filterChange={handleFilterChange}\n              isFindingHotels={isHotelSummaryOptionsLoading}\n              hotelCounterRef={hotelCounterRef}\n              pageHeading1Title={data?.location?.title}\n              centerCoordinate={centerCoordinate}\n              amenities={data?.hotelSummaryOptions?.amenities}\n              matchId={data?.match?.id}\n              counterMessage={{\n                customCounterMessage: hotelCountMessage,\n                customCounterSRMessage: srHotelCountMessage,\n              }}\n            />\n          </div>\n        </div>\n      </main>\n      <div className={cx({ 'mt-10 md:mt-0': !isListVisible })}>\n        <Footer isFluid />\n      </div>\n      <CompareBar\n        centerCoordinate={centerCoordinate}\n        onStopCompare={() => hotelCounterRef?.current?.focus()}\n      />\n      {/* Hotel details Panel */}\n      {!!selectedCtyhocn ? <HotelDetails /> : null}\n    </>\n  );\n};\n","export * from './locations-page';\n","import { LocationsPage } from '../../../components/locations-page';\nimport type { GetServerSidePropsContext } from 'next';\nimport { TransactionViewWrapper } from '../../../components/view-transactions/transactions-view-wrapper';\nimport { getServerSideClients, getServerSideSafeLanguage } from '@dx-ui/framework-react-query';\nimport { AppProvider } from '../../../providers/app-provider';\nimport {\n  COMMON_NAMESPACES,\n  FEATURE_TOGGLES,\n  LOCATIONS_NAMESPACES,\n  REACT_QUERY_CONFIG,\n  SEARCH_NAMESPACES,\n} from '../../../constants';\nimport {\n  serverSideAllRegionsQuery,\n  serverSideFeatureToggles_FeatureConfigsQuery,\n} from '@dx-ui/queries-dx-shop-search-ui';\nimport type { HotelSummaryOptions_GeocodePageQuery } from '@dx-ui/queries-dx-shop-search-ui';\nimport { getUrlParamsString } from '../../../utils';\nimport {\n  getCustomHeaders,\n  serverSideGeocodePageHotelSummaryData,\n  serverSideProps,\n} from '../../../utils/serverSideProps';\nimport { FilterProvider } from '../../../providers/filter-provider';\n\ntype LocationsPageProps = {\n  pageData: HotelSummaryOptions_GeocodePageQuery['geocodePage'];\n  path: string;\n  isOneLink: boolean;\n};\n\nexport default function Locations({ pageData, path, isOneLink }: LocationsPageProps) {\n  // If bounds are available on hotelSummaryOptions (the expanded bounding box), then use it. Othwise use standard bounds.\n  const bounds = pageData?.hotelSummaryOptions?.bounds || pageData?.match?.geometry?.bounds;\n\n  const initialBounds = {\n    south: bounds?.southwest.latitude || 80,\n    west: bounds?.southwest.longitude || -160,\n    north: bounds?.northeast.latitude || 80,\n    east: bounds?.northeast.longitude || 160,\n  };\n\n  return (\n    <FilterProvider>\n      <AppProvider\n        initialHotelSummaryOptionsData={pageData as HotelSummaryOptions_GeocodePageQuery}\n        isOneLink={isOneLink}\n      >\n        <LocationsPage initialBounds={initialBounds} path={path} />\n        <TransactionViewWrapper />\n      </AppProvider>\n    </FilterProvider>\n  );\n}\n\nexport const getServerSideProps = async (context: GetServerSidePropsContext) => {\n  const { resolvedUrl, res, params } = context;\n  const locale = getServerSideSafeLanguage(context);\n  // For dynamic routing all the path slugs will be in a single array on ctx.query called slug. We joined them together with / in order to pass to core+\n  const locationPath = (params?.slug as string[])?.join('/') || '';\n  const path = ['locations', locationPath].join('/').replace(/\\/+/g, '/');\n\n  const customHeaders = getCustomHeaders(context);\n  const { authClient, queryClient } = getServerSideClients({\n    ...REACT_QUERY_CONFIG,\n    customHeaders,\n    response: res,\n  });\n  const serverSideRulesAndToggles = await serverSideFeatureToggles_FeatureConfigsQuery(\n    queryClient,\n    {\n      names: FEATURE_TOGGLES,\n    }\n  ).catch((e) => {\n    console.log(`Error in serverSideFeatureToggles_FeatureConfigsQuery: ${e}`); // eslint-disable-line no-console\n    return null;\n  });\n\n  if (!serverSideRulesAndToggles) {\n    return { notFound: true };\n  }\n  const hotelSummaryData = await serverSideGeocodePageHotelSummaryData({\n    path,\n    queryClient,\n    locale,\n    url: resolvedUrl,\n  }).catch((e) => {\n    console.log(`Error in serverSideGeocodePageHotelSummaryData: ${e}`); // eslint-disable-line no-console\n    return null;\n  });\n\n  if (!hotelSummaryData) {\n    return { notFound: true };\n  }\n\n  const pageData = hotelSummaryData?.geocodePage;\n\n  // perform redirect if match is null and query is complete using canconical url\n  if (!pageData?.match) {\n    //first check if a valid canonical uri is returned. If not then something went wrong. 404\n    if (!pageData?.location?.uri) {\n      return { notFound: true };\n    }\n    const urlParams = getUrlParamsString(locale, resolvedUrl);\n    return {\n      redirect: {\n        destination: `/${locale}/${pageData?.location?.uri}${urlParams}`,\n        permanent: true,\n      },\n    };\n  }\n\n  return serverSideProps({\n    authClient,\n    context,\n    queryClient,\n    namespaces: [...COMMON_NAMESPACES, ...LOCATIONS_NAMESPACES, ...SEARCH_NAMESPACES],\n    pageProps: {\n      customHeaders,\n      pageData,\n      path,\n    },\n    getServerSideQueries({ queryClient }) {\n      return [\n        serverSideAllRegionsQuery(queryClient, { language: 'en' }).catch((e) => {\n          console.log(`Error in serverSideAllRegionsQuery: ${e}`); // eslint-disable-line no-console\n          return null;\n        }),\n      ];\n    },\n  });\n};\n","import type { HotelAmenityOption, Maybe } from '@dx-ui/gql-types';\nimport type { HotelType } from '../providers/app-provider/app-provider.types';\nimport getOptimizedImages from './get-optimized-images';\nimport { getLeadRateAvailStatus } from '../components/hotel-card/utils/hotel-lead-rate-utils';\n\nexport type Breadcrumbs = {\n  uri: string;\n  name: string;\n};\n\ntype GetSeoSchemaParams = {\n  breadcrumbs?: Breadcrumbs[];\n  baseUrl: string;\n  language: string;\n  hotels?: HotelType[];\n  amenities?: Pick<HotelAmenityOption, 'name' | 'id'>[];\n};\n\ntype ImageWithRatios = {\n  altText?: Maybe<string>;\n  ratios: { url?: Maybe<string> }[];\n};\ntype ImageWithVariants = {\n  altText?: Maybe<string>;\n  variants: { url?: Maybe<string>; size: 'xs' | 'sm' | 'md' }[];\n};\n\nconst getImageUrl = (image: ImageWithRatios | ImageWithVariants) => {\n  return 'ratios' in image ? image.ratios[0]?.url : getOptimizedImages(image.variants, 'xs');\n};\n\nexport const SEO_IMAGES = 3;\nconst getHotelSeoImages = (\n  hotelImages: HotelType['images'] | null | undefined,\n  imagesWanted: number\n) => {\n  if (!hotelImages) return [];\n\n  const primaryImages = Array.isArray(hotelImages.carousel)\n    ? hotelImages.carousel.slice(0, imagesWanted).map((image) => getImageUrl(image))\n    : [];\n\n  if (primaryImages.length === 0 && hotelImages.master) {\n    return [getImageUrl(hotelImages.master)];\n  }\n  return primaryImages;\n};\n\nexport const SEO_AMENITIES = 1;\nconst getTopThreeAmenities = (\n  hotel: HotelType,\n  amenities: Pick<HotelAmenityOption, 'name' | 'id'>[]\n) => {\n  const topAmenities: { '@type': string; name: string }[] = [];\n  for (const amenity of amenities) {\n    if (hotel.amenityIds.includes(amenity.id)) {\n      topAmenities.push({\n        '@type': 'LocationFeatureSpecification',\n        name: amenity.name,\n      });\n      if (topAmenities.length === SEO_AMENITIES) break;\n    }\n  }\n\n  return topAmenities; // Return the array of top amenities for this hotel\n};\n\nexport const getSeoSchema = ({\n  breadcrumbs,\n  baseUrl,\n  language,\n  hotels,\n  amenities,\n}: GetSeoSchemaParams) => {\n  if (!breadcrumbs || !breadcrumbs.length) return '';\n\n  const breadcrumbItemListElements = breadcrumbs.map((breadcrumb, index) => ({\n    '@type': 'ListItem',\n    position: index + 1,\n    item: {\n      '@id': `${baseUrl}${language}${breadcrumb.uri}`,\n      name: breadcrumb.name,\n    },\n  }));\n  const hotelItemListElements = (hotels ?? [])\n    .slice(0, 20)\n    .filter((hotel) => getLeadRateAvailStatus(hotel.display, hotel.leadRate) === 'AVAILABLE')\n    .map((hotel, index) => {\n      return {\n        '@type': 'ListItem',\n        position: index + 1,\n        item: {\n          '@type': 'Hotel',\n          name: hotel.name,\n          image: getHotelSeoImages(hotel.images, SEO_IMAGES),\n          offers: {\n            '@type': 'Offer',\n            price: hotel.leadRate?.lowest?.rateAmount,\n            priceCurrency: hotel.localization?.currencyCode,\n          },\n          amenityFeature: getTopThreeAmenities(hotel, amenities ?? []),\n          url: hotel.facilityOverview?.homeUrlTemplate,\n        },\n      };\n    });\n\n  const seoSchema = {\n    '@context': 'https://schema.org',\n    '@graph': [\n      {\n        '@type': 'BreadcrumbList',\n        itemListElement: breadcrumbItemListElements,\n      },\n      ...(hotelItemListElements.length > 0\n        ? [\n            {\n              '@type': 'ItemList',\n              itemListElement: hotelItemListElements,\n            },\n          ]\n        : []),\n    ],\n  };\n  return JSON.stringify(seoSchema);\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"about-locations-page_container__GUw4u\"};"],"names":["AboutLocationsPage","about","aboutClassName","contentBlockClassName","descriptionClassName","titleClassName","descIndex","orderedListIndex","unOrderedListIndex","contentBlocks","length","div","className","cx","styles","data-testid","map","contentBlock","title","dangerouslySetInnerHTML","__html","descriptions","description","orderedList","unorderedList","Breadcrumbs","breadcrumbs","rest","useTranslation","t","nav","aria-label","ol","breadcrumb","idx","isLastBreadcrumb","li","a","aria-current","href","uri","name","span","aria-hidden","useWrappedRouter","router","breadCrumbs","bc","locale","OSCBreadCrumbs","worker","Interlinks","interlinks","interlinkTitle","metrics","useMetrics","handleInterlinkMetricsOnClick","linkItemName","data","indexOf","substring","formattedLinkItemName","split","trackInterlinksTitleClick","interLinkTitle","h3","Accordion","items","key","content","section","location_interlinks","linkItem","env","OHW_BASE_URL","onClick","collapsedButtonLabel","expandedButtonLabel","type","variant","defaultDreamPageAttibutes","categoryId","undefined","categoryName","isCategoryAmenity","isGlobalPage","isResortPage","useGetDreamPageAttributes","queryParameters","dreamPageAttributesConfig","useFeatureToggleConfig","safeQueryParams","dispatch","useAppDispatch","dreamPageAttributes","useMemo","pageAttributes","globalBounds","enabled","category","activeFiltersState","amenityFilters","dreamAttributes","Object","values","config","categoryOrAmenity","find","id","includes","pluralDisplay","singularDisplay","useEffect","pageType","getPageType","asPath","isGlobal","isResorts","isBrand","brandCode","payload","Worker","URL","useSortHotels","sortType","hotels","centerCoordinate","useState","sortedHotels","setSortedHotels","fetchData","postMessage","handleMessage","event","addEventListener","removeEventListener","sortHotels","e","console","error","LocationsPage","initialBounds","path","useAppState","selectedCtyhocn","selectedCurrency","isListVisible","shouldUsePoints","useFilterState","isClient","useIsClient","useCoordsFromParams","shouldUseParamCoords","React","locationQueryPath","setLocationQueryPath","useAuth","guestInfo","isLoading","isAuthenticated","useGetDreamPageData","locationPath","bounds","initHotelCount","locationMatchName","regionMatchName","location","brandName","hotelSummaryOptions","brands","brand","code","totalSize","_hotels","initialHashedHotelData","hashHotelSummaryOptionsData","initBounds","mapBounds","setMapBounds","mapCenter","setMapCenter","isInitialRender","allQuadNodesLoaded","boundsChangeCount","hotelCounterRef","useRef","isCountryOrState","match","useHotelSummaryOptions","initialHashedHotelSummaryOptionsData","isPageBrandFilterEnabled","language","address","current","matchName","blobEnabled","blobPocToggleEnabled","hotelSummaryExtractUrl","hashedHotelSummaryOptionsHotelData","isFetching","useLocation","coordinate","useGetMVTSelections","agentId","CHANGE_DEFAULT_SORT_WHEN_USING_POINTS","isProvisional","redeemPts","isMVTVariant","initWithPointsSort","isLoaded","VARIANTS","VariantB","sessionState","getSessionState","isReady","newActiveFilterState","initializeActiveFiltersState","locationCategory","sessionFiltersState","activeFilterState","showAvailableHotels","boundingBox","usePoints","hasConnectingRooms","adjoiningRoomStay","SORTBY_DROP_DOWN","POINTS_ASCENDING","getSortType","sortBy","displayCurrency","sendReward","GOALS","LocationsPageLoad","useInitializeConductrics","authLoading","isAuthLoading","useConductricsSelection","setDreamPageData","pageTitle","meta","document","typeName","city","country","state","honorsNumber","hhonors","hhonorsNumber","tier","summary","tierName","points","totalPoints","packages","currencyCode","DISTANCE","setPageData","page","events","on","hasUserZoomed","updateMapBounds","newBounds","hasUserPanned","visibleHotels","useGetFilteredHotels","isHotelSummaryOptionsLoading","filter","hotel","currentHotel","applyFiltersToHotel","amenities","attributes","attributeFilters","brandCodes","brandFilters","rating","ratingsFilter","showAvailableHotelsOnly","hasMPACallResolved","useLeadPrice","priceRange","priceFilter","maxPoints","handleBoundsChange","debounce","onBoundsChange","keys","srCounter","setSrCounter","MAX_PROPERTIES_PER_LIST_VIEW_PAGE","count","pageStart","pageEnd","hotelCountMessage","setHotelCountMessage","srHotelCountMessage","setSrHotelCountMessage","lat","lng","latitude","longitude","coords","geometry","allHotelsSorted","visibleHotelsSet","Set","visibleSortedHotels","has","ctyhocn","onPageChanged","pageIndex","pageSize","Math","min","message","srMessage","interval","setInterval","clearInterval","seoSchema","getSeoSchema","baseUrl","handleFilterChange","newActiveFiltersState","isEqual","paths","base","handleFilterReset","pageInterlinks","useMapListToggle","isDesktopListVisible","isDesktopMapView","useVerticalSpaceMVT","isCurrencyAndSortInAllFiltersModal","isFilterAndSortInAccordion","isSuggestedFiltersInHorizontalScroll","filterAndSortLabel","isVerticalSpaceVar8","sortAndFiltersContent","SortByDropDown","CurrencyConverter","UsePoints","CompareHotelsToggle","Filters","amenityCategories","filteredHotelCount","onFilterChange","onResetFilters","showSaleFilter","SuggestedFilterButtons","isConductricsLoaded","isFindingHotels","isLocationPageHSOLoading","onFilterCriteriaChange","matchId","sortAndFilters","TaxonomyList","labelledBy","containerClassname","MetaData","replace","isGlobalBounds","locationPageMatchType","SearchHeader","isFluid","main","role","PlacesSearch","ctaText","hasShallowRoutingEnabled","expandedClassName","style","minHeight","HotelSearchResultSummaryPanel","customCounterMessage","customCounterSRMessage","hotelCount","pageHeading1Title","showingHotelDivRef","ListView","isHSODataLoading","index","links","p","MapBlock","showSpinner","visibleFilteredInBoundHotels","filterChange","counterMessage","Footer","CompareBar","onStopCompare","focus","HotelDetails","Locations","pageData","isOneLink","south","southwest","west","north","northeast","east","FilterProvider","AppProvider","initialHotelSummaryOptionsData","TransactionViewWrapper","getImageUrl","image","ratios","url","getOptimizedImages","variants","getHotelSeoImages","hotelImages","imagesWanted","primaryImages","Array","isArray","carousel","slice","master","getTopThreeAmenities","topAmenities","amenity","amenityIds","push","SEO_AMENITIES","breadcrumbItemListElements","position","item","hotelItemListElements","getLeadRateAvailStatus","display","leadRate","images","SEO_IMAGES","offers","price","lowest","rateAmount","priceCurrency","localization","amenityFeature","facilityOverview","homeUrlTemplate","JSON","stringify","itemListElement"],"sourceRoot":"","ignoreList":[0,1,2,3,4]}